home *** CD-ROM | disk | FTP | other *** search
/ Cartopedia - The Ultimate World Reference Atlas / Cartopedia_World_ Reference_CD.ISO / dksetup / dksetup.mst < prev    next >
Text File  |  1996-06-14  |  15KB  |  462 lines

  1. ''$DEFINE DEBUG
  2. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  3. '   ATLAS\CARTOPEDIA USA alpha
  4. '
  5. '   VforW + Wing
  6. '   Origional gives option to not add icon, so need new .rc and rebuild .mak
  7. '
  8. '   VERSION:04/07/95
  9. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  10. '04/07/95 Make sure files in bin section of inf file 'always' overwrite
  11. '28/07/95 Ini file not created for minimum install, uses file provided in dkcode
  12. '27/06/95 Test for directory names max 8 chars
  13. '26/06/95 For minimum install, ini file is now not installed
  14. '19/06/95 Moved test for cirrus drivers to mst file as only applies to sampler
  15. '05/06/95 Fonts installed on users machine
  16. '01/06/95 No choice about adding icon to prog man, altered dkgen.inc & rc file
  17. '            (custom, customhelp & speed dlg boxes need changing)
  18. '22/05/95 Code for bundling with sampler
  19. '22/05/95 Large readme need Write (will need to change dlg box in rc file)
  20. '15/05/95 No warning that directory does not exist
  21. '03/05/95 Ini file put in executable directory rather than Windows dir to stop
  22. '            clash with foreign products with same name files
  23.  
  24.  
  25. '$INCLUDE 'dkgen.inc'
  26.  
  27.  
  28. 'IF WITH SAMPLER ( add to .inf & dkcode ) + see add to prog man below
  29. 'CONST SAMPLER_PATH = "SAMPLER"
  30. 'CONST APPLICATION_MENU_FILE = "custmenu.exe"
  31. 'CONST APPLICATION_EXE2_FILE = "dksd2pc.exe"
  32. 'DECLARE FUNCTION TestForCirrus LIB "dkutils.dll" () As INTEGER
  33.  
  34.  
  35. 'IF USING SPECIFIC FONTS
  36. 'DECLARE FUNCTION InstallFont LIB "dkutils.dll" (szFont$) AS INTEGER
  37. 'DECLARE SUB UpdateFonts()
  38.  
  39. ' Paths and INI stuff
  40. CONST APPLICATION_INI_FILE = "atlas.ini"
  41. CONST APPLICATION_EXE_FILE = "atlas.exe"
  42. CONST APPLICATION_PENGE_FILE = "atlas.png"
  43.  
  44. CONST INI_FILE_SOURCE = "AppPath" ' OR   "WinPath"
  45. CONST EDITOR_EXE = "notepad.exe " 'OR "write.exe "
  46.  
  47. ' Language dependant strings
  48. CONST APPLICATION_README_FILE = "readme.txt"
  49. CONST STR_README = "Cartopedia Read Me"
  50. CONST STR_MSGCAPTION = "Cartopedia Setup"
  51. CONST STR_PRODUCTNAME = "Cartopedia"
  52. CONST DEFAULT_INSTALL_PATH = "\DKMM\ATLAS"
  53.  
  54. DECLARE SUB Install()
  55. DECLARE SUB AddFilesToCopyList(szInstallType$)
  56. DECLARE FUNCTION IsCDROMDrive LIB "dkutils.dll" (wDrive%) As INTEGER
  57.  
  58.  
  59. Init:
  60.    Initialise STR_PRODUCTNAME, DEFAULT_INSTALL_PATH, STR_MSGCAPTION
  61.  
  62.  
  63. WelcomeDlg:
  64.     if Welcome() = NAV_BACK then
  65.         ' Don nothing - cant go back
  66.     end if
  67.  
  68.     if TestSystem() = NAV_BACK then
  69.         goto WelcomeDlg
  70.     end if
  71.  
  72. 'IF WITH SAMPLER
  73. 'TestCirrus:
  74. '    if TestForCirrus() = 1 then
  75. '        dButton = DoMsgBox(STR_CIRRUS, szMsgCaption$, MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  76. '    end if
  77.  
  78. 'IF EARLIER PRODS WITH NO SAMPLER
  79. '    UpdateADPCMDrivers
  80.  
  81.  
  82. ExpressCustomDlg:
  83.     ' defaults to Express
  84.     'if szExpressCustomChoice = "EXPRESS" then
  85.     '    SetSymbolValue "RadioDefault", "1"
  86.     'else
  87.     '    SetSymbolValue "RadioDefault", "1"
  88.     'end if
  89.  
  90. ECDlgLoop:
  91.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_SPEED, "FRadioDlgProc", IDD_WHIZZHELP, PROC_HELP)
  92.  
  93.     select case szButton
  94.     case "REACTIVATE"
  95.         goto ECDlgLoop
  96.     case "BACK"
  97.         UIPop 1
  98.         goto WelcomeDlg
  99.     case "CONTINUE" ' Install
  100.         UIPop 1
  101.         if GetSymbolValue("ButtonChecked") = "1" then
  102.             szExpressCustomChoice = "EXPRESS"
  103.             goto ExpressInstallLoop
  104.         else
  105.             szExpressCustomChoice = "CUSTOM"
  106.             goto CustomInstallLoop
  107.         end if
  108.     case "EXIT"
  109.         AskQuit
  110.         goto ECDlgLoop
  111.     end select
  112.  
  113.  
  114. CustomInstallLoop:
  115. GetPathDlg:
  116.     SetSymbolValue "EditTextIn", szDestPath
  117.     szOldDestPath = szDestPath
  118.     SetSymbolValue "EditFocus", "ALL"
  119.  
  120. GetPathDlgLoop:
  121.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_DESTPATH, "FEditDlgProc", IDD_PATHHELP, PROC_HELP)
  122.  
  123.     select case szButton
  124.     case "REACTIVATE"
  125.         goto GetPathDlgLoop
  126.  
  127.     case "BACK"
  128.         UIPop 1
  129.         szDestPath = szOldDestPath
  130.         goto ECDlgLoop
  131.  
  132.     case "CONTINUE"
  133.         UIPop 1
  134.         szDestPath = GetSymbolValue("EditTextOut")
  135.  
  136.         if mid$(szDestPath, 2, 1) = ":" and mid$(szDestPath, 3, 1) <> "\" then
  137.             szTemp$ = mid$(szDestPath, 1, 2) + "\" + mid$(szDestPath, 3, len(szDestPath)-2)
  138.             szDestPath = szTemp
  139.         end if
  140.  
  141.         if mid$(szDestPath, 2, 1) <> ":" then
  142.             if mid$(szDestPath, 1,1) <> "\" then
  143.                 szDestPath = mid$(szWinPath, 1,1) + ":\" + szDestPath
  144.             else
  145.                 szDestPath = mid$(szWinPath, 1,1) + ":" + szDestPath
  146.             end if
  147.         elseif IsDriveValid(mid$(szDestPath, 1,1)) = 0 then
  148.             szDestPath = szOldDestPath
  149.             UIPop 1
  150.             BadPath
  151.             goto GetPathDlg
  152.         end if
  153.  
  154.         ' check for "foreign" chars in path
  155.         slength% = len(szDestPath)
  156.         found% = 0
  157.         for i% = 1 to slength%
  158.             if asc(mid$(szDestPath, i%, 1)) > 126 then
  159.                 found% = 1
  160.             end if
  161.         next i%
  162.         if found% = 1 then
  163.             szDestPath = szOldDestPath
  164.             UIPop 1
  165.             BadPath
  166.             goto GetPathDlg
  167.         end if
  168.  
  169.         wDrive% = asc(mid$(szDestPath, 1,1)) - asc("A")
  170.         if IsCDROMDrive(wDrive%) > 0 then
  171.             szDestPath = szOldDestPath
  172.             UIPop 1
  173.             BadPath
  174.             goto GetPathDlg
  175.         end if
  176.  
  177.         if IsDriveNetwork(mid$(szDestPath,1,1)) = 1 then
  178.             szDestPath = szOldDestPath
  179.             UIPop 1
  180.             NetworkDrive
  181.             goto GetPathDlg
  182.         end if
  183.  
  184.         if IsDirWritable(szDestPath) = 0 then
  185.             szDestPath = szOldDestPath
  186.             UIPop 1
  187.             BadPath
  188.             goto GetPathDlg
  189.         end if
  190.  
  191.         'check dir names not > 8 chars
  192.         dirlength% = 0
  193.         i% = 3
  194.         while i% <> slength%
  195.             i% =i%+1
  196.             dirlength% = dirlength% +1
  197.             if mid$(szDestPath, i%, 1)="\" then
  198.                 if dirlength% > 9 then
  199.                     szDestPath = szOldDestPath
  200.                     dButton = DoMsgBox( STR_DIRTOOLONG, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  201.                     goto GetPathDlg
  202.                  else
  203.                     dirlength% = 0
  204.                 endif
  205.             end if
  206.  
  207.         wend
  208.         if dirlength% > 8 then
  209.             szDestPath = szOldDestPath
  210.             dButton = DoMsgBox( STR_DIRTOOLONG, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  211.             goto GetPathDlg
  212.         endif
  213.  
  214.  
  215.  
  216.   '      if DoesDirExist(szDestPath) = 0 then
  217.   '          dButton = DoMsgBox( STR_DIRNOTEXIST, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  218.   '          if dButton = 7 then
  219.   '              goto GetPathDlg
  220.   '          end if
  221.   '      end if
  222.  
  223.         UIPop 1
  224.  
  225.  
  226.     case "EXIT"
  227.         AskQuit
  228.         goto GetPathDlg
  229.     end select
  230.  
  231. GetCustomChoicesDlg:
  232.     SetSymbolValue "CheckItemsState", ""
  233.     AddListItem "CheckItemsState", szMinimalInstall
  234. '    AddListItem "CheckItemsState", szAddPMItem
  235. GetCustomChoicesLoop:
  236.  
  237.     ClearCopyList
  238.     if szMinimalInstall = "OFF" then
  239.         AddFilesToCopyList "FULL"
  240.     else
  241.         AddFilesToCopyList "MINIMAL"
  242.     end if
  243.  
  244.     dDestDrive = asc(mid$(szDestPath, 1,1)) - asc("A")+1
  245.     dWinDrive = asc(mid$(szWinPath, 1,1)) - asc("A")+1
  246.  
  247.     SetSymbolValue "DriveStatusText", ""
  248.     AddListItem "DriveStatusText", mid$(szDestPath, 1,1) + ":"
  249.     AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dDestDrive) / 1024) + " K"
  250.     AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szDestPath, 1,1))/1024) + " K"
  251.  
  252.     if dDestDrive = dWinDrive then
  253.         AddListItem "DriveStatusText", ""
  254.         AddListItem "DriveStatusText", ""
  255.         AddListItem "DriveStatusText", ""
  256.     else
  257.         AddListItem "DriveStatusText", mid$(szWinPath, 1,1) + ":"
  258.         AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dWinDrive)/ 1024 ) + " K"
  259.         AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szWinPath, 1,1))/1024) + " K"
  260.     end if
  261.  
  262.     AddListItem "DriveStatusText", sz